package com.blockmeta.bbs.businesslibrary.popwindow;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import androidx.annotation.NonNull;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.UnderlineSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.Animation;
import android.widget.TextView;

import com.blockmeta.bbs.baselibrary.base.app.BaseApp;
import com.blockmeta.bbs.businesslibrary.R;
import com.blockmeta.bbs.businesslibrary.util.RouterActivityHelper;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import razerdp.basepopup.BasePopupWindow;
/**
 * @author AirThor
 * @date 2019/11/26.
 */
public class UserAgreementPopupWindow extends BasePopupWindow implements View.OnClickListener {
    private static final String APP_NAME = BaseApp.getApp().getResources().getString(R.string.app_name);
    private static final String AGREEMENT = "感谢您信任并使用"+APP_NAME+"的服务。依据最新法律要求,我们更新了用户协议、隐私政策,并根据您使用服务的具体功能对您的个人信息进行收集、使用和共享。请您仔细阅读,并确认了解我们对您个人信息的处理规则,包括:\n" +
           "\n" +
           "1.我们如何收集和使用您的个人信息；\n" +
           "\n" +
           "2.我们如何共享、转让、公开您的个人信息;\n" +
           "\n" +
           "3.我们如何保护您的个人信息;\n" +
           "\n" +
           "4.您的权利;\n" +
           "\n" +
           "5.本政策如何更新;\n" +
           "\n" +
           "6.如何联系我们。\n" +
           "\n" +
           "如您同意《用户服务协议》和《隐私政策》,请点击“同意”开始使用我们的产品和服务,我们尽全力保护您的个人信息安全。";
    private static final String TEARM = "\n" +
            "通过进入并使用本网站，您同意接受以下使用条款（下称“本使用条款”）和此处所载或提及的所有条款和条件或者本网站载明的任何新增加的条款和条件的约束。 如不同意接受上述所有条款，请停止使用本网站。\n" +
            "\n" +
            "趣会有权随时对本使用条款进行修改。修改后的使用条款一经登载在本网站上即发生效力。请定期查询本网站登载的使用条款，确保了解管辖您使用本网站的所有条款。另外，特定的条款和条件可能适用于特定的内容、宣传、服务或本网站中包括的或可以从本网站取得的资讯（以下简称“内容”）。该等特殊条款既可以附加于本使用条款之外，亦可以仅在明确规定的范围之内取代本使用条款。\n" +
            "\n" +
            "趣会保留随时修改或更新本网站内容或内容格式的权利，无需通知。趣会保留自行决定基于任何理由终止或限制进入本网站的权利。\n" +
            "\n" +
            "虽然本网站已经采取谨慎措施确保其登载的信息的准确性，但趣会对该等信息的准确性不承担任何责任。趣会特此明确声明其未作出任何种类的明示或默示的陈述或保证，包括对于适销性、适合于某特殊目的性、不侵权、本网站的运营或本网站内容的任何保证。除非趣会声明某个功能已被加密，趣会不对本网站的安全性做任何保证或声明。请您明确，您发送的任何信息可能被截取。趣会不保证本网站或供您进入本网站的服务器或趣会发送的任何电子信息没有病毒或任何其他有害因素。\n" +
            "\n" +
            "在任何情况下，趣会不应承担由于使用或有关使用或无法使用本网站或其内容造成的任何间接、后果性、惩罚性、特殊或附带的损害，即使趣会已经被告知该等损害的可能性。\n" +
            "\n" +
            "本网站可以提供与不在趣会控制之下的其他网站的链接。趣会不以任何方式对该等其他网站的内容承担责任。趣会只是为了本网站用户的方便提供该等链接，提供对该等网站的链接不表示趣会赞同该等网站的内容。\n" +
            "\n" +
            "内容（包括但不限于，软件、音频文件、视频文件、文章、照片）的著作权和其他所有专有权均属于趣会或其许可方。所有未在此内容中明确授予用户的权利，趣会将予以保留。\n" +
            "\n" +
            "本使用条款应接受中国法律的管辖并按之解释，排除其法律冲突的原则。如发生任何与本使用条款或本网站的使用引起的或有关的任何索赔或诉因，您同意接受相关法院的非专属管辖，条件是您同意仅将任何该等索赔或诉因提交给相关法院。\n" +
            "\n" +
            "经由或与本网站有关提供或收集的个人信息应仅按照趣会的 隐私权声明使用，并且本使用条款受限于本网站发布的隐私权政策。" +
            "\n" +
            "如您同意《用户服务协议》和《隐私政策》,请点击“同意”开始使用我们的产品和服务,我们尽全力保护您的个人信息安全。";
    private static final String PRIVACY = "\n" +
            "趣会（简称“我们”）深知个人信息对您的重要性，我们将按照法律法规的规定，保护您的个人信息及隐私安全。我们制定本“隐私政策”并特别提示：希望您在使用趣会及相关服务前仔细阅读并理解本隐私政策，以便做出适当的选择。 本隐私政策将帮助你了解：\n" +
            "\n" +
            "我们会遵循隐私政策收集、使用您的信息，但不会仅因您同意本隐私政策而采用强制捆绑的方式一揽子收集个人信息。\n" +
            "当您使用或开启相关功能或使用服务时，为实现功能、服务所必需，我们会收集、使用相关信息。除非是为实现基本业务功能或根据法律法规要求所必需的必要信息，您均可以拒绝提供且不影响其他功能或服务。我们将在隐私政策中逐项说明哪些是必要信息。\n" +
            "如果您未登录帐号，我们会通过设备对应的标识符信息来保障信息推送的基本功能。如果您登录了账号，我们会根据账号信息实现信息推送。\n" +
            "精确地理位置、摄像头、麦克风、相册权限，均不会默认开启，只有经过您的明示授权才会在为实现特定功能或服务时使用，您也可以撤回授权。特别需要指出的是，即使经过您的授权，我们获得了这些敏感权限，也不会在相关功能或服务不需要时而收集您的信息。\n" +
            "本隐私政策适用于您通过趣会应用程序、趣会网页、供第三方网站和应用程序使用的趣会软件开发工具包（SDK）和应用程序编程接口（API）方式来访问和使用我们的产品和服务。\n" +
            "下文将帮您详细了解我们如何收集、使用、存储、传输、共享、转让（如适用）与保护个人信息；帮您了解查询、访问、删除、更正、撤回授权个人信息的方式。其中，有关您个人信息权益的条款重要内容我们已用加粗形式提示，请特别关注。\n" +
            "\n" +
            "我们如何收集和使用个人信息\n" +
            "我们如何使用cookie等同类技术\n" +
            "我们如何共享、转让、公开披露个人信息\n" +
            "我们如何存储个人信息\n" +
            "我们如何保护个人信息的安全\n" +
            "管理您的个人信息\n" +
            "未成年人使用条款\n" +
            "隐私政策的修订和通知\n" +
            "联系我们\n" +
            "1. 我们如何收集和使用个人信息\n" +
            "我们会按照如下方式收集您在使用服务时主动提供的，以及通过自动化手段收集您在使用功能或接受服务过程中产生的信息：\n" +
            "\n" +
            "1.1 注册、登录、认证\n" +
            "1.1.1 注册、登录\n" +
            "a. 当您注册、登录趣会及相关服务时，您可以通过经过实名认证的手机号创建账号，并且您可以完善相关的网络身份识别信息（头像、昵称、密码），收集这些信息是为了帮助您完成注册。您还可以根据自身需求在电脑端的“设置”-“基本资料”中选择填写性别、所在地等、兴趣爱好等来完善您的信息。\n" +
            "\n" +
            "b. 您也可以使用第三方账号登录并使用，您将授权我们获取您在第三方平台注册的公开信息（头像、昵称、地区以及性别信息），用于与趣会账号绑定，使您可以直接登录并使用本产品和相关服务。\n" +
            "\n" +
            "1.2 资讯浏览\n" +
            "a. 趣会可能会向您推荐更感兴趣的信息，为实现这一功能，我们可能会收集必要的日志信息，具体如下：\n" +
            "\n" +
            "您操作、使用的行为信息：点击、关注、收藏、搜索、浏览、分享、使用各项功能的时长。\n" +
            "\n" +
            "您主动提供的信息：回复、发布、点赞、评论、弹幕\n" +
            "\n" +
            "地理位置信息：GPS信息、WLAN接入点、蓝牙和基站的传感器信息\n" +
            "\n" +
            "b. GPS地理位置是敏感个人信息，若您拒绝提供，我们将不会根据GPS信息向您推荐信息或向您提供与GPS信息相关的服务，但不会影响趣会其他功能的正常使用。\n" +
            "\n" +
            "c. 我们可能会基于IP地址对应的城市向您展示、推荐您所在地区的本地相关信息d.我们收集、使用的上述信息进行了去标识化处理，数据分析仅对应特定的、无法直接关联您身份的编码，不会与您的真实身份相关联。\n" +
            "\n" +
            "1.3 发布与互动\n" +
            "1.3.1 信息发布\n" +
            "a. 您发布内容、评论、回复、点赞时，我们将收集您发布的信息，并展示您的昵称、头像、发布内容。\n" +
            "\n" +
            "b. 您使用发图文、发音视频功能时，我们会以弹窗形式请求您授权相机、相册麦克风、存储权限，以便我们获取您要用于发布的图片和音视频。您如果拒绝授权提供，将无法使用此功能，但不影响您正常使用趣会的其他功能。\n" +
            "\n" +
            "c.在您发布活动时，我们可能会提供显示位置的服务，当您确认显示位置时，我们会请求您授权地理位置权限，并收集与本服务相关的位置信息。您如果拒绝授权提供精确地理位置信息，将无法使用此功能，但不影响您正常使用趣会的其他功能。\n" +
            "\n" +
            "d.用户因使用我们的产品或者服务而被我们收集的信息，例如其他用户发布的信息中可能含有您的部分信息（如：在回复、评论、发布图文、音视频中涉及到与您相关的信息）。\n" +
            "\n" +
            "1.3.2 互动交流\n" +
            "您主动关注您感兴趣的账号、活动并进行互动，进行浏览、回复、评论、收藏、点赞或分享内容时，我们会收集您关注的账号，并向您展示您关注账号发布内容。\n" +
            "\n" +
            "1.3.3 使用圈子功能时收集的信息\n" +
            "1.4 搜索\n" +
            "您使用“趣会”的搜索服务时，我们会收集您的搜索关键字信息、日志记录。为了提供高效的搜索服务，部分前述信息会暂时存储在您的本地存储设备之中，并可向您展示搜索结果内容、搜索历史记录。\n" +
            "\n" +
            "1.5 下载\n" +
            "当您需要下载图片、音视频时，我们将以弹窗形式向您请求授权我们存储权限（若您已经授权趣会存储，将不再提示），以便您能保存前述图片、音视频。若您需要撤回授权，您可以使用您手机系统中设置-应用管理-权限管理-关闭趣会的存储权限，且不影响您使用其他功能。\n" +
            "\n" +
            "1.6 安全运行\n" +
            "1.6.1 安全保障功能\n" +
            "我们致力于为您提供安全、可信的产品与使用环境，提供优质而可靠的服务是我们的核心目标。为实现安全保障功能所收集的信息是必要信息。\n" +
            "\n" +
            "1.6.2 设备信息与日志信息\n" +
            "a. 为了保障软件与服务的安全运行，我们会收集您的硬件型号、操作系统版本号、国际移动设备识别码、唯一设备标识符、网络设备硬件地址、IP 地址、WLAN接入点、蓝牙、基站、软件版本号、网络接入方式、类型、状态、网络质量数据、操作、使用、服务日志。\n" +
            "\n" +
            "b. 为了预防恶意程序及安全运营所必需，我们会收集安装的应用信息或正在运行的进程信息。例如，检索您是否安装了视频App，如果是H5页面直接跳转至该App播放。\n" +
            "\n" +
            "c. 在此您郑重确认并同意：我们可以使用您的账户信息、设备信息、服务日志信息以及我们关联公司、合作方在获得您授权或依法可以共享的信息，用于判断账户安全、进行身份验证、检测和打击黑产、检测及防范安全事件。\n" +
            "\n" +
            "1.7 其他\n" +
            "1.7.1 为了对根据您的联网状态提供相应服务，我们需要查看您当前的网络状态，连接WLAN网络和断开，检查wifi的打开关闭状态。例如，当您使用手机流量时，如您点击观看视频，我们会请求您同意使用流量观看视频。\n" +
            "\n" +
            "1.7.2 当您需要使用蓝牙分享趣会APP上的内容时，我们将以弹窗形式请求您授权开启蓝牙，以便根据您的需求配对蓝牙设备分享内容；\n" +
            "\n" +
            "1.7.3 我们将在您安装趣会时在您的桌面创建趣会APP图标、在您卸载趣会时，在桌面删除趣会APP图标；\n" +
            "\n" +
            "1.7.4 为了让您能够全屏显示趣会APP，我们需要您允许趣会收起或展开状态栏。\n" +
            "\n" +
            "1.8 收集、使用个人信息目的变更\n" +
            "请您了解，随着我们业务的发展，可能会对趣会的功能和提供的服务有所调整变化。原则上，当新功能或服务与我们当前提供的功能或服务相关时，收集与使用的个人信息将与原处理目的具有直接或合理关联。在与原处理目的无直接或合理关联的场景下，我们收集、使用您的个人信息，会再次进行告知，并征得您的同意。\n" +
            "\n" +
            "1.9 交易及售后所需信息\n" +
            "1.9.1 订单信息\n" +
            "当您在趣会下单购买商品/服务时，趣会系统会生成您购买该商品/服务的订单。您需在订单中至少填写您的收货人姓名（或名称）、收货地址及电话号码，该订单会同时载明订单号、您所购买的商品或服务信息、下单时间、您实际支付的货款金额及您采用的支付方式。根据部分商品或服务的特点及适用法律的要求，您可能还需提供相关身份信息（如您的身份证、军官证、护照、港澳台通行证、驾驶证、社保卡、学生证或相关证件号码）、电子邮箱、您本人的照片或视频，如您不购买/不使用某些商品/服务，则无需提供相关信息。\n" +
            "\n" +
            "您理解并同意，我们将使用您的订单信息来进行您的身份核验、确定交易、支付结算，为您查询订单，提供客服咨询与售后服务等；我们可能还会使用您的订单信息来判断您的交易是否存在异常以保护您的交易安全。\n" +
            "\n" +
            "1.9.2 支付信息\n" +
            "在您下单后，您可通过趣会系统支持的第三方支付机构完成支付，支付功能本身并不收集您的个人信息，但我们需将您的订单号、交易金额以及其他您选择的支付机构要求的交易信息与您选择的支付机构共享以实现其确认您的支付指令并完成支付。\n" +
            "\n" +
            "1.9.3 客服与/售后服务所需信息\n" +
            "我们的客服和售后功能会使用您的账户信息和订单信息。为保证您的账户安全，我们的客服会使用您的账户信息核验您的身份。当您需要我们提供与您订单信息相关的客服或售后功能时，我们会查询您的订单信息。根据您所要求的服务内容，您可能会在与我们的客服人员沟通时，提供上述信息之外的其他信息，以协助客服人员完成您所要求的服务。\n" +
            "\n" +
            "1.9.4 保障交易安全所需信息\n" +
            "为确认交易状态及为您提供售后与争议解决服务，我们须通过您基于交易所确定的交易对象、第三方支付机构、物流公司等收集与交易进度相关的您的交易、支付、物流信息，或将您的交易信息共享给上述服务提供者。\n" +
            "\n" +
            "1.9.5 保障账户安全所需信息\n" +
            "为提高您使用趣会服务的安全性，更准确地预防钓鱼网站欺诈和保护账户安全，我们可能会通过了解您的订单信息、浏览记录、浏览习惯、常用软件信息、设备信息、账号列表来判断您账户的风险，并可能会记录一些我们认为有风险的链接（“URL”）。\n" +
            "\n" +
            "1.10 依法豁免征得同意收集和使用的个人信息\n" +
            "请您理解，在下列情形中，根据法律法规及相关国家标准，我们收集和使用您的个人信息无需征得您的授权同意：\n" +
            "\n" +
            "a. 与国家安全、国防安全直接相关的；\n" +
            "\n" +
            "b. 与公共安全、公共卫生、重大公共利益直接相关的；\n" +
            "\n" +
            "c. 与犯罪侦查、起诉、审判和判决执行等直接相关的；\n" +
            "\n" +
            "d. 出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的；\n" +
            "\n" +
            "e. 所收集的您的个人信息是您自行向社会公众公开的；\n" +
            "\n" +
            "f. 从合法公开披露的信息中收集的您的个人信息的，如合法的新闻报道、政府信息公开等渠道；\n" +
            "\n" +
            "g. 根据您的要求签订或履行合同所必需的；\n" +
            "\n" +
            "h. 用于维护软件及相关服务的安全稳定运行所必需的，例如发现、处置软件及相关服务的故障；\n" +
            "\n" +
            "i. 为合法的新闻报道所必需的；\n" +
            "\n" +
            "j. 学术研究机构基于公共利益开展统计或学术研究所必要，且对外提供学术研究或描述的结果时，对结果中所包含的个人信息进行去标识化处理的；\n" +
            "\n" +
            "k. 法律法规规定的其他情形。\n" +
            "\n" +
            "特别提示您注意，如信息无法单独或结合其他信息识别到您的个人身份，其不属于法律意义上您的个人信息；当您的信息可以单独或结合其他信息识别到您的个人身份时或我们将无法与任何特定个人信息建立联系的数据与其他您的个人信息结合使用时，这些信息在结合使用期间，将作为您的个人信息按照本隐私政策处理与保护。\n" +
            "\n" +
            "2. 对 Cookie 和同类技术的使用\n" +
            "Cookie 和同类技术是互联网中普遍使用的技术。当您使用趣会及相关服务时，我们可能会使用相关技术向您的设备发送一个或多个 Cookie 或匿名标识符，以收集和存储您访问、使用本产品时的信息。我们承诺，不会将 Cookie 用于本隐私政策所述目的之外的任何其他用途。我们使用 Cookie 和同类技术主要为了实现以下功能或服务：\n" +
            "\n" +
            "2.1 保障产品与服务的安全、高效运转\n" +
            "我们可能会设置认证与保障安全性的 cookie 或匿名标识符，使我们确认您是否安全登录服务，或者是否遇到盗用、欺诈及其他不法行为。这些技术还会帮助我们改进服务效率，提升登录和响应速度。\n" +
            "\n" +
            "2.2 帮助您获得更轻松的访问体验\n" +
            "使用此类技术可以帮助您省去重复您填写个人信息、输入搜索内容的步骤和流程（示例：记录搜索、表单填写）。\n" +
            "\n" +
            "2.3 为您推荐、展示、推送您可能感兴趣的内容或账号\n" +
            "a. 我们可能会利用 Cookie 和同类技术了解您的偏好和使用习惯，进行数据分析，以改善产品服务、推荐用户感兴趣的信息或功能，并优化您对广告的选择。\n" +
            "\n" +
            "b. 我们可能会使用cookie对浏览活动进行记录，用于向您推荐信息和排查崩溃、延迟的相关异常情况以及探索更好的服务方式。\n" +
            "\n" +
            "2.4 cookie的清除\n" +
            "大多数浏览器均为用户提供了清除浏览器缓存数据的功能，您可以在浏览器设置功能中进行相应的数据清除操作。如您进行清除，可能因为这些修改，您可能无法使用依赖于Cookie由公司提供的服务或相应功能。\n" +
            "\n" +
            "3. 我们如何共享、转让、公开披露个人信息\n" +
            "3.1 共享\n" +
            "3.1.1 共享原则\n" +
            "a. 授权同意原则: 向我们的第三方共享您的个人信息，需经过您的授权同意，所共享的个人信息是去标识化处理后的信息或共享第三方无法识别此类信息的自然人主体的信息，除非我们向关联方共享必要的个人信息，且受本隐私政策中所声明目的的约束。如果关联方、第三方使用信息的目的超越原授权同意范围，他们需要重新征得您的同意。\n" +
            "\n" +
            "b. 合法正当与最小必要原则： 向关联方、第三方共享的数据必须具有合法正当目的，且共享的数据以达成目的必要为限。\n" +
            "\n" +
            "c. 安全审慎原则： 我们将审慎评估关联方、第三方数据使用共享信息的目的，对这些合作方的安全保障能力进行综合评估，并要求其遵循合作法律协议。我们会对合作方获取信息的软件工具开发包（SDK）、应用程序接口（API）进行严格的安全监测，以保护数据安全。\n" +
            "\n" +
            "3.1.2 实现功能或服务的共享信息\n" +
            "a. 当您在使用趣会中由我们的关联方、第三方提供的功能，或者当软件服务提供商、智能设备提供商、系统服务提供商与我们联合为您提供服务时我们会将去标识化后的个人信息、或共享第三方无法识别此类信息的自然人主体的信息与这些关联方、第三方共享，进行综合统计并通过算法做特征与偏好分析，形成间接人群画像，用以向您进行推荐、展示或推送您可能感兴趣的信息，或者推送更适合您的特定功能、服务或商业广告。\n" +
            "\n" +
            "b. 登录第三方账号：当登录趣会账号点击跳转第三方产品时，我们可能会将您的昵称、头像及账户余额、经去标识化处理的puid和cid与您登录的第三方产品共享。\n" +
            "\n" +
            "c. 地理位置服务：当您使用地理位置相关服务（如有）时，我们会将GPS信息与位置服务提供商（百度地图/高德地图/系统自带地图）进行共享以便可以向您返回位置结果。GPS信息是敏感个人信息，拒绝提供，仅会影响地理位置服务功能，但不影响其他功能的正常使用。\n" +
            "\n" +
            "3.1.3 实现广告相关的共享信息\n" +
            "a. 广告推送：我们可能与委托我们进行推广和广告投放的合作伙伴共享信息，但我们不会共享用于识别您个人身份的信息（姓名、身份证号），仅会向这些合作伙伴提供不能识别您个人身份的间接画像标签及去标识化或匿名化后的信息，以帮助其在不识别您个人身份的前提下提升广告有效触达率。\n" +
            "\n" +
            "b. 广告统计：我们可能与业务的服务商、供应商和其他合作伙伴共享分析去标识化的统计信息，这些信息难以与您的身份信息相关联，这些信息将帮助我们分析、衡量广告和相关服务的有效性。\n" +
            "\n" +
            "3.1.4 实现安全与分析统计的共享信息\n" +
            "a. 保障使用安全：我们非常重视账号与服务安全，为保障您和其他用户的账号与财产安全，使您和我们的正当合法权益免受不法侵害，我们和关联公司或服务提供商可能会共享必要的设备、账号及日志信息。\n" +
            "\n" +
            "b. 分析产品使用情况：为分析我们服务的使用情况，提升用户使用的体验，可能会与关联方或第三方共享产品使用情况（崩溃、闪退）的统计性数据，这些数据难以与其他信息结合识别您的个人身份。\n" +
            "\n" +
            "3.1.5 帮助您参加营销推广活动\n" +
            "当您选择参加我们及我们的关联方或第三方举办的有关营销活动时，可能需要您提供姓名、通信地址、联系方式、银行账号 信息。这些信息是敏感个人信息， 拒绝提供可能会影响您参加相关活动，但不会影响其他功能。只有经过您的同意，我们才会将这些信息与关联方或第三方共享，以保障您在联合活动中获得体验一致的服务，或委托第三方及时向您兑现奖励。\n" +
            "\n" +
            "3.2 转让\n" +
            "a. 我们不会转让您的个人信息给任何其他第三方，除非征得您的明确同意。\n" +
            "\n" +
            "b. 随着我们业务的持续发展，我们将有可能进行合并、收购、资产转让，您的个人信息有可能因此而被转移。在发生前述变更时，我们将按照法律法规及不低于本隐私政策所载明的安全标准要求继受方保护您的个人信息，否则我们将要求继受方重新征得您的授权同意。\n" +
            "\n" +
            "3.3 披露\n" +
            "a. 我们不会公开披露您的信息，除非遵循国家法律法规规定或者获得您的同意。我们公开披露您的个人信息会采用符合行业内标准的安全保护措施.\n" +
            "\n" +
            "b. 对违规账号、欺诈行为进行处罚公告时，我们会披露相关账号的信息。\n" +
            "\n" +
            "3.4 依法豁免征得同意共享、转让、公开披露的个人信息\n" +
            "请您理解，在下列情形中，根据法律法规及国家标准，我们共享、转让、公开披露您的个人信息无需征得您的授权同意：\n" +
            "\n" +
            "a. 与国家安全、国防安全直接相关的；\n" +
            "\n" +
            "b. 与公共安全、公共卫生、重大公共利益直接相关的；\n" +
            "\n" +
            "c. 与犯罪侦查、起诉、审判和判决执行等直接相关的；\n" +
            "\n" +
            "d. 出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人同意的；\n" +
            "\n" +
            "e. 您自行向社会公众公开的个人信息；\n" +
            "\n" +
            "f. 从合法公开披露的信息中收集个人信息的，如合法的新闻报道、政府信息公开等渠道。\n" +
            "\n" +
            "4. 我们如何存储个人信息\n" +
            "4.1 存储地点\n" +
            "我们依照法律法规的规定，将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前，我们不会将上述信息传输至境外，如果我们向境外传输，我们将会遵循相关国家规定或者征求您的同意。\n" +
            "\n" +
            "4.2 存储期限\n" +
            "我们仅在为提供“趣会”及服务之目的所必需的期间内保留您的个人信息：您发布的信息、评论、点赞及相关信息，在您未撤回、删除或未注销账号期间，我们会保留相关信息。超出必要期限后，我们将对您的个人信息进行删除或匿名化处理，但法律法规另有规定的除外。\n" +
            "\n" +
            "5. 我们如何保护个人信息的安全\n" +
            "a. 我们非常重视您个人信息的安全，将努力采取合理的安全措施（包括技术方面和管理方面）来保护您的个人信息，防止您提供的个人信息被不当使用或未经授权的情况下被访问、公开披露、使用、修改、损坏、丢失或泄漏。\n" +
            "\n" +
            "b. 我们会使用不低于行业同行的加密技术、匿名化处理及相关合理可行的手段保护您的个人信息，并使用安全保护机制防止您的个人信息遭到恶意攻击。\n" +
            "\n" +
            "c. 我们会建立专门的安全部门、安全管理制度、数据安全流程保障您的个人信息安全。我们采取严格的数据使用和访问制度，确保只有授权人员才可访问您的个人信息，并适时对数据和技术进行安全审计。\n" +
            "\n" +
            "d. 尽管已经采取了上述合理有效措施，并已经遵守了相关法律规定要求的标准，但请您理解，由于技术的限制以及可能存在的各种恶意手段，在互联网行业，即便竭尽所能加强安全措施，也不可能始终保证信息百分之百的安全，我们将尽力确保您提供给我们的个人信息的安全性。\n" +
            "\n" +
            "e. 您知悉并理解，您接入我们的服务所用的系统和通讯网络，有可能因我们可控范围外的因素而出现问题。因此，我们强烈建议您采取积极措施保护个人信息的安全，包括但不限于使用复杂密码、定期修改密码、不将自己的账号密码及相关个人信息透露给他人。\n" +
            "\n" +
            "f. 我们会制定应急处理预案，并在发生用户信息安全事件时立即启动应急预案，努力阻止这些安全事件的影响和后果扩大。一旦发生用户信息安全事件（泄露、丢失）后，我们将按照法律法规的要求，及时向您告知：安全事件的基本情况和可能的影响、我们已经采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施。我们将及时将事件相关情况以推送通知、邮件、信函、短信及相关形式告知您，难以逐一告知时，我们会采取合理、有效的方式发布公告。同时，我们还将按照相关监管部门要求，上报用户信息安全事件的处置情况。\n" +
            "\n" +
            "g. 您一旦离开趣会及相关服务，浏览或使用其他网站、服务及内容资源，我们将没有能力和直接义务保护您在趣会及相关服务之外的软件、网站提交的任何个人信息，无论您登录、浏览或使用上述软件、网站是否基于趣会的链接或引导。\n" +
            "\n" +
            "6. 管理您的个人信息\n" +
            "我们非常重视您对个人信息的管理，并尽全力保护您对于您个人信息的查询、访问、修改、删除、撤回同意授权、注销账号、投诉举报以及设置隐私功能的相关权利，以使您有能力保障您的隐私和信息安全。\n" +
            "\n" +
            "6.1 自主选择控制个性化推荐信息\n" +
            "6.1.1 接收信息的自主可控\n" +
            "a. 自主决定接收推送资讯：我们的信息推荐功能可能会根据信息系统、算法在内的自动化决策机制做出。我们不断完善与探索推荐系统优化方案的同时，在审核层面也采取了严格的审核策略。特别地，为保障您接收信息的自主性，当您对我们推送的信息不感兴趣或希望减少某些信息推荐时，您可以点击推送信息栏中的“X”，并选择相关理由，进行精准屏蔽。\n" +
            "\n" +
            "b. 自主订阅所需的资讯：在首页中会根据您主动选择关注的频道信息进行展示（若您未设置的将展示默认频道信息），在“海盗号”中自主选择增加或减少可选择跳转的页面，您可以自主选择关注或取消关注。\n" +
            "\n" +
            "6.1.2 程序化广告推送\n" +
            "程序化广告信息： 程序化广告是广告展示技术之一，由广告主根据您在其应用内的偏好进行智能推荐。趣会仅提供程序化广告对接技术，不会获取您在其他应用内的行为或个人数据。如您想关闭某广告，可点击广告左下角的“X”关闭该广告。\n" +
            "\n" +
            "6.2 改变或撤回授权设置和撤回及信息的处理\n" +
            "6.2.1 改变或撤回敏感权限设置\n" +
            "您可以在设备本身操作系统中关闭GPS地理位置、通讯录、摄像头、麦克风、相册权限改变同意范围或撤回您的授权。撤回授权后我们将不再收集与这些权限相关信息。\n" +
            "\n" +
            "6.2.2 改变或撤回授权的信息处理\n" +
            "特定的业务功能和服务将需要您的信息才能得以完成，当您撤回同意或授权后，我们无法继续为您提供撤回同意或授权所对应的功能和服务，也不再处理您相应的个人信息。但您撤回同意或授权的决定，不会影响公司此前基于您的授权而开展的个人信息处理。\n" +
            "\n" +
            "6.3 访问、删除、更正您的个人信息\n" +
            "6.3.1 访问个人账号信息\n" +
            "您可以查询、访问您的头像、用户名、性别、地区，您可以在趣会的“编辑个人资料”中进行查询、访问。\n" +
            "\n" +
            "6.3.2 查询访问、更正、取消您关注账号；查询访问粉丝、访客信息\n" +
            "a. 进入趣会-我的-“查询、访问、取消关注您的账户及您关注的账号。\n" +
            "\n" +
            "6.3.3 查询访问、更改、删除您的收藏、浏览记录、搜索历史记录\n" +
            "a. 点击“我的”—点击“我的收藏”、进入查询访问、删除；\n" +
            "\n" +
            "b. 点击搜索栏—点击“清空”删除“搜索历史记录”；\n" +
            "\n" +
            "c. 您可以通过点击“系统设置”—点击“清理缓存”。\n" +
            "\n" +
            "6.3.4 删除发布的内容、转发内容、提问及回答内容、评论内容\n" +
            "a. 删除发布内容： 删除发布内容：点击“我的”-“意见反馈”联系客服删除。\n" +
            "\n" +
            "b. 删除评论内容：点击“我的”-“意见反馈”联系客服删除。\n" +
            "\n" +
            "c. 特别提示您注意，出于安全性和身份识别（如号码申诉服务）的考虑，您可能无法自主修改注册时提交的某些初始注册信息。如您确有需要修改该类注册信息，请根据本隐私政策载明的联系方式联系我们。\n" +
            "\n" +
            "6.4 注销账号\n" +
            "如您使用APP注销的，请在“更多”-“意见反馈”中联系客服帮助您完成注销。在您注销账号前，我们将验证您的个人身份、安全状态、设备信息等。有关注销的流程和内容，请参见注销页面提示。您知悉并理解，注销账号的行为是不可逆的行为，当您注销账号后，我们将删除有关您的相关信息或进行匿名化处理，但法律法规另有规定的除外。\n" +
            "\n" +
            "6.5 投诉举报\n" +
            "您可按照我们公示的制度进行投诉或举报。如果您认为您的个人信息权利可能受到侵害，或者发现侵害个人信息权利的线索（例如：认为我们收集您的个人信息违反法律规定或者双方约定），您可以参照《侵权投诉指引》与我们联系。我们核查后会及时反馈您的投诉与举报。\n" +
            "\n" +
            "6.6 访问隐私政策\n" +
            "a. 您可以在注册页面，或者在登录个人账号“更多”—“设置”-“关于我们”查看本隐私政策的全部内容或通过网页端查看本隐私政策全部内容。\n" +
            "\n" +
            "b. 请您了解，本隐私政策中所述的“趣会”及相关服务可能会根据您所使用的手机型号、系统版本、软件应用程序版本、移动客户端等因素而有所不同。最终的产品和服务以您所使用的“趣会”软件及相关服务为准。\n" +
            "\n" +
            "6.7 停止运营向您告知\n" +
            "如我们停止运营，我们将及时停止收集您个人信息的活动，将停止运营的通知以逐一送达或公告的形式通知您，并对所持有的您的个人信息进行删除或匿名化处理。\n" +
            "\n" +
            "7. 未成年人条款\n" +
            "a. 若您是未满18周岁的未成年人，在使用“趣会”及相关服务前，应在您的父母或其他监护人监护、指导下共同阅读并同意本隐私政策。\n" +
            "\n" +
            "b. 我们根据国家相关法律法规的规定保护未成年人的个人信息，只会在法律允许、父母或其他监护人明确同意或保护未成年人所必要的情况下收集、使用、储存、共享、转让或披露未成年人的个人信息；如果我们发现在未事先获得可证实的父母同意的情况下收集了未成年人的个人信息，则会设法尽快删除相关信息。\n" +
            "\n" +
            "c. 若您是未成年人的监护人，当您对您所监护的未成年人的个人信息有相关疑问时，请通过公司本隐私政策公示的联系方式与我们联系。\n" +
            "\n" +
            "8. 隐私政策的修订和通知\n" +
            "a. 为了给您提供更好的服务，趣会及相关服务将不时更新与变化，我们会适时对本隐私政策进行修订，这些修订构成本隐私政策的一部分并具有等同于本隐私政策的效力，未经您明确同意，我们不会削减您依据当前生效的本隐私政策所应享受的权利。\n" +
            "\n" +
            "b. 本隐私政策更新后，我们会在趣会发出更新版本，并在更新后的条款生效前通过官方网站公告或其他适当的方式提醒您更新的内容，以便您及时了解本隐私政策的最新版本。\n" +
            "\n" +
            "9. 联系我们\n" +
            "a. 如果您对个人信息保护问题有投诉、建议、疑问，您可以将问题发送至328548820@163.com，我们核查并验证您的用户身份后会及时反馈您的投诉与举报。\n" +
            "\n" +
            "b. 如对本隐私政策内容有任何疑问、意见或建议，您可通过328548820@163.com与我们联系。";
    private static final String HIGHLIGHT_PRIVACY = "《隐私政策》";
    private static final String HIGHLIGHT = "(《用户服务协议》)|(《隐私政策》)";
    private static final String PRIVACY_URL = BaseApp.getApp().getResources().getString(R.string.privacy_agreement_url);
    private static final String USER_AGREEMENT_URL = BaseApp.getApp().getResources().getString(R.string.user_login_protocol_url);
    private Context mContext;
    private int mType;

    public UserAgreementPopupWindow(Context context, int type) {
        super(context);
        mContext = context;
        mType = type;
        initViews();
    }

    private OnPositive mOnPositive;
    TextView tvContent;
    TextView tvTitle;
    private void initViews() {
        View negative = findViewById(R.id.tv_negative);
        View positive = findViewById(R.id.tv_positive);
        negative.setOnClickListener(this);
        positive.setOnClickListener(this);
        setBackPressEnable(false);
        tvTitle = (TextView) findViewById(R.id.tv_title);
        tvContent = (TextView) findViewById(R.id.tv_content);
        tvContent.setMovementMethod(LinkMovementMethod.getInstance());
        if(mType == 0) {
            tvTitle.setText("用户服务协议及隐私政策");
            tvContent.setText(highStr(AGREEMENT, HIGHLIGHT));
        }else {
            tvTitle.setText("使用条款");
            tvContent.setText(highStr(TEARM,""));
        }
    }

    @Override
    protected Animation initShowAnimation() {
        return getDefaultScaleAnimation();
    }

    @Override
    protected Animation initExitAnimation() {
        return getDefaultScaleAnimation(false);
    }

    @Override
    public View getClickToDismissView() {
        return null;
    }

    @Override
    public View onCreatePopupView() {
        return LayoutInflater.from(getContext()).inflate(R.layout.pop_user_agreement, null);
    }

    @Override
    public View initAnimaView() {
        return null;
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.tv_negative) {
            ((Activity) getContext()).finish();
        } else if (id == R.id.tv_positive && mOnPositive != null) {
            dismiss();
            mOnPositive.onPositive();
        }
    }

    public interface OnPositive {
        void onPositive();
    }

    public void setOnPositive(OnPositive onPositive) {
        mOnPositive = onPositive;
    }

    /**
     * @param str         全部的字符串
     * @param needHighStr 需要高亮的字符串
     * @return 这里默认高亮的是红色，需要自定义时，再添加重载的方法吧
     * 两个方法亲测都可以的，只是这个方法看着高大上一点
     */
    private Spanned highStr(String str, String needHighStr) {
        SpannableString s = new SpannableString(str);
        Pattern p = Pattern.compile(needHighStr);
        Matcher m = p.matcher(s);
        while (m.find()) {
            int start = m.start();
            int end = m.end();
            final String currentUrl=HIGHLIGHT_PRIVACY.equals(m.toMatchResult().group())?PRIVACY_URL:USER_AGREEMENT_URL;

            s.setSpan(new ClickableSpan() {
                @Override
                public void onClick(View widget) {
                    tvContent.setText(highStr(PRIVACY,HIGHLIGHT));
                }
            }, start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//            s.setSpan(new URLSpan(currentUrl), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            s.setSpan(new UnderlineSpan(){
                @Override
                public void updateDrawState(@NonNull TextPaint ds) {
                    ds.setColor(ds.linkColor);
                    ds.setUnderlineText(false);
                }
            },start,end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            s.setSpan(new ForegroundColorSpan(Color.BLUE), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        return s;
    }
}